package first_practice;

import java.util.HashSet;
import java.util.Set;

/**
 * @author ZhiWen Ren
 * @version 1.0
 * @description: LeetCode-128-最长连续序列
 * @date 2025/3/10 19:53
 */
public class Solution128 {
    public int longestConsecutive(int[] nums) {
        int ans = 0;
        Set<Integer> set = new HashSet<>(); // 构建HashSet存储所有元素
        for (int num : nums) set.add(num);
        for (int i : set) {
            if (set.contains(i - 1)) continue; // 一直找到最小的那个数，不加这句代码会超出时间限制
            int tempAns = 1, tempI = i;
            while (set.contains(tempI + 1)) { // 遍历Set，如果i+1一直在Set中，则其连续
                tempAns++;
                tempI++;
            }
            ans = Math.max(ans, tempAns);
        }
        return ans;
    }
}
